package com.sitech.openapi.domain.ProductOrder;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "ProductOrder", description = "产品订单信息")
public class ProductOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    // 记录产品订单标识
    @ApiModelProperty(value = "产品订单标识")
    private Long custOrderId;

    // 引用资源OrderHandler
    @ApiModelProperty(value = "最新订单经办人信息标识")
    private OrderHandler orderHandler;

    /**
     * 记录本次业务的鉴权方式，LOVB=CUS-C-0015
     * 1000	普通认证
     * 1100	短信认证
     * 1200	U棒认证
     * 1300	证书认证
     * 9900	其他
     */
    @ApiModelProperty(value = "业务认证方式")
    private String authType;

    // 引用资源Customer
    @ApiModelProperty(value = "客户标识")
    private Long custId;

    /**
     * 记录产品订单的操作类型，LOVB=EVT-C-0011
     * 1000	新建
     * 1100	变更
     * 1200	撤单
     * 1300作废
     */
    @ApiModelProperty(value = "产品订单操作类型")
    private String operType;

    // 引用资源Customer 记录外部客户标识（省内客户标识)
    @ApiModelProperty(value = "外部客户标识")
    private String extCustId;

    // 产品订单编码（集团）
    @ApiModelProperty(value = "产品订单编码")
    private String custOrderNbr;

    // 记录初次受理时间，改单时不再修改。
    @ApiModelProperty(value = "受理时间")
    private String acceptDate;

    // 引用资源CommonRegion
    @ApiModelProperty(value = "受理区域标识")
    private Long acceptRegionId;

    // 记录备注信息
    @ApiModelProperty(value = "备注")
    private String remark;

    // 记录产品订单状态。LOVB=EVT-0002（查询时需要返回）
    @ApiModelProperty(value = "产品订单状态")
    private String statusCd;

    // 引用资源Staff
    @ApiModelProperty(value = "创建人")
    private String createStaff;

    // 记录外部产品订单标识(省份发起订单时为省份订单号；电渠发起时为合作商订单号；)
    @ApiModelProperty(value = "外部产品订单标识")
    private String extCustOrderId;

    // 引用资源Channel
    @ApiModelProperty(value = "来源系统")
    private String sysSource;

    // 引用一组资源MainOfferOrderItem
    @ApiModelProperty(value = "主套餐订单项")
    private List<MainOfferOrderItem> mainOfferOrderItems;


    // 引用一组资源ProductOrderAttr
    @ApiModelProperty(value = "订单属性")
    private List<ProductOrderAttr> productOrderAttrs;

    public Long getCustOrderId() {
        return custOrderId;
    }

    public void setCustOrderId(Long custOrderId) {
        this.custOrderId = custOrderId;
    }

    public OrderHandler getOrderHandler() {
        return orderHandler;
    }

    public void setOrderHandler(OrderHandler orderHandler) {
        this.orderHandler = orderHandler;
    }

    public String getAuthType() {
        return authType;
    }

    public void setAuthType(String authType) {
        this.authType = authType;
    }

    public Long getCustId() {
        return custId;
    }

    public void setCustId(Long custId) {
        this.custId = custId;
    }

    public String getOperType() {
        return operType;
    }

    public void setOperType(String operType) {
        this.operType = operType;
    }

    public String getExtCustId() {
        return extCustId;
    }

    public void setExtCustId(String extCustId) {
        this.extCustId = extCustId;
    }

    public String getCustOrderNbr() {
        return custOrderNbr;
    }

    public void setCustOrderNbr(String custOrderNbr) {
        this.custOrderNbr = custOrderNbr;
    }

    public String getAcceptDate() {
        return acceptDate;
    }

    public void setAcceptDate(String acceptDate) {
        this.acceptDate = acceptDate;
    }

    public Long getAcceptRegionId() {
        return acceptRegionId;
    }

    public void setAcceptRegionId(Long acceptRegionId) {
        this.acceptRegionId = acceptRegionId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getStatusCd() {
        return statusCd;
    }

    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }

    public String getCreateStaff() {
        return createStaff;
    }

    public void setCreateStaff(String createStaff) {
        this.createStaff = createStaff;
    }

    public String getExtCustOrderId() {
        return extCustOrderId;
    }

    public void setExtCustOrderId(String extCustOrderId) {
        this.extCustOrderId = extCustOrderId;
    }

    public String getSysSource() {
        return sysSource;
    }

    public void setSysSource(String sysSource) {
        this.sysSource = sysSource;
    }

    public List<MainOfferOrderItem> getMainOfferOrderItems() {
        return mainOfferOrderItems;
    }

    public void setMainOfferOrderItems(List<MainOfferOrderItem> mainOfferOrderItems) {
        this.mainOfferOrderItems = mainOfferOrderItems;
    }


    public List<ProductOrderAttr> getProductOrderAttrs() {
        return productOrderAttrs;
    }

    public void setProductOrderAttrs(List<ProductOrderAttr> productOrderAttrs) {
        this.productOrderAttrs = productOrderAttrs;
    }

    @Override
    public String toString() {
        return "ProductOrder{" +
                "custOrderId=" + custOrderId +
                ", orderHandler=" + orderHandler +
                ", authType='" + authType + '\'' +
                ", custId=" + custId +
                ", operType='" + operType + '\'' +
                ", extCustId='" + extCustId + '\'' +
                ", custOrderNbr='" + custOrderNbr + '\'' +
                ", acceptDate='" + acceptDate + '\'' +
                ", acceptRegionId=" + acceptRegionId +
                ", remark='" + remark + '\'' +
                ", statusCd='" + statusCd + '\'' +
                ", createStaff='" + createStaff + '\'' +
                ", extCustOrderId='" + extCustOrderId + '\'' +
                ", sysSource='" + sysSource + '\'' +
                ", mainOfferOrderItems=" + mainOfferOrderItems +
                ", productOrderAttrs=" + productOrderAttrs +
                '}';
    }
}
